写这篇文章,主要是想按照一定的逻辑顺总结一下自己做项目以来,序用到过的pandas的知识点.
虽然pandas官方文档上各个方面都写的很清楚,但是还是想自己再写一份,一个是想作为个人梳理,另外也可以把最经常使用的部分拎出来,更清晰一些.

不定时更新.

数据的IO

MySQL

1.读mysq数据

df = pd.read_sql(sql, db.conn)

其中sql是需要的sql语句,db是创建的数据库连接对象.

一般来说,这样基本就能满足需求.

额外的参数


 1. chunksize : int, default None
    当数据量比较大,或者想将读入的数据分割成指定行数的一个个block,则可以设置这个参数.其会返回一个迭代器,迭代器中的元素为chunksize行数的记录.
    
 2. index_col : string or list of strings, optional, default: None
    可以设置某些列为索引列.

pandas.read_sql文档

2.写mysql数据

engine = create_engine('mysql+pymysql://root:password@localhost/schemeName', echo=False)

df.to_sql(tablename, engine, if_exists='append', index=index)

将df的数据写入到数据库表中.pandas文档中提供的例子是SQlite的数据库,所以不能直接用db.conn去充当engine.

参数说明

1. if_exists: {‘fail’, ‘replace’, ‘append’}, default ‘fail’
当数据库中存在要写入的table时,三种处理方式
fail:那么写入失败
replace:把原来的table删掉,写入新的
append:在原来的table上,添加新的记录

2. index : boolean, default True
当设为True时,会把df的index当成一列写入数据库.

pandas.DataFrame.to_sql文档

csv

1.读数据

df = pd.read_csv(path + filename, header=None, names=[name1, name2])

参数说明

1.header: int or list of ints, default ‘infer’
用来指定行号作为数据的开始和列的名称.header设为None是告诉其打开的文件里没有列名.如果打开的文件有列名的时候,可以不设置这一项,这样系统会自动推测出列名.

2.names : array-like, default None
显示地指定列的名称.当header是None的时候,需要加上这个.

关于这个函数,可设置的参数还比较多,不过目前使用的也就这几个,所以先不描述其他了.

pandas.read_csv文档

2.写数据

df.to_csv(path+filename, index=False, header=header, mode='a')

参数说明

1.index: boolean, default True
说明是否需要写入df的index.

2.header : boolean or list of string, default True
说明是否要把列名写入.也可以在这里重新设置写入的列名.

3.mode : str,default ‘w’
python的写入模式.

pandas.DataFrame.to_csv文档

excel

直接创建dateFrame

数据的选择

简单选择

  1. 选择部分行
  2. 选择部分列
  3. 选择数值

按照条件进行筛选

  1. 单一条件筛选
  2. 多个条件筛选

数据的聚合值描述

数据的修改

索引信息的修改

数据的合并

  1. concat
  2. merge
  3. join

数据的可视化

时间序列相关

数据采样


棠棠的椰子球
84 声望0 粉丝